const express = require("express");
const router = express.Router();
const userController = require("../controller/userController");
const userValidator = require("../middleware/validator/userValidator");
const verify = require("../util/jwt");

const multer  = require('multer') // 文件上传 只支持 form-data形式
const upload = multer({ dest: 'public' })
router
  .post("/register", userValidator.register, userController.register) // 用户注册
  .post("/logins", userValidator.login, userController.login) // 用户登录
  .get("/getLists", verify.verifyToken(), userController.getList) //获 取用户列表
  .put("/",verify.verifyToken(),userValidator.update,userController.update) // 修改用户信息
  .post("/headimg",verify.verifyToken(),upload.single('headimg'),userController.headimg) // 定义文件上传字段参数 headimg
  .get("/subscribe/:channelId",verify.verifyToken(),userController.subscribe) // 关注用户/频道
  .get("/unsubscribe/:channelId",verify.verifyToken(),userController.unsubscribe) // 取消关注用户/频道
  .get('/getusers/:channelId',verify.verifyToken(false),userController.getusers) // 不校验是否登录 获取 需要关注用户/频道详情以及是否关注的状态
  .get('/getsubscribe/:userId',verify.verifyToken(false),userController.getsubscribe) //校验不校验token都可以 获取用户关注的所有用户/频道相关数据
  .get('/getchannels',verify.verifyToken(),userController.getchannels) //校验token 参数从token解析中 获取用户的所有粉丝
module.exports = router;
